Modern computer systems or microprocessor based electronic devices are often interconnected by large scale communication networks. Interconnected systems may be vulnerable to attacks from hackers or other malicious systems. To defend or prevent such attacks, a variety of network security techniques, such as cryptographic tools, have been developed. Cryptographic tools may use large keys (e.g., 512-bit, 1024-bit, 2048-bit keys, or even larger) for encrypting and decrypting messages exchanged between different computer systems.
Because large keys may be impractical or impossible to be remembered by their human users, key exchange protocols including password authenticated key exchange protocols are used to implement secure and practical key usage. Password authenticated key exchange protocols may be more desired when simplicity and convenience are under consideration.
Conventional password authenticated key exchange protocols often use public key based approaches, such as an RSA based password authenticated key exchange protocol described in S. Lucks, Open key exchange: How to defeat dictionary attacks without encrypting public keys, Proc. Security Protocol Workshop, Lecture Notes in Computer Science, Vol. 1361 (Springer-Verlag, 1997). However, most RSA based password authenticated key exchange protocols may be shown to be insecure. Further, these conventional password authenticated key exchange protocols may often require a large amount of processing overhead for setting up the protocols, such as establishing common public key parameters between key exchange entities.